package br.usjt.dominio;

//
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
//
import br.usjt.persistencia.DAOCliente;
import br.usjt.persistencia.DAOFactory;
import br.usjt.persistencia.IDAOCliente;

//
public class ClienteRepositorio {
	IDAOCliente daoCliente;

	public ClienteRepositorio() {
		this.daoCliente = new DAOCliente();
	}

	public Cliente consulta(String cpf) {

		daoCliente = DAOFactory.getClienteDAO();
		Cliente c = null;

		try {

			ResultSet rs = daoCliente.consulta(cpf);

			if (rs.next()) {

				c = new Cliente();
				try {
					c.setNome(rs.getString("nome"));
					c.setCPF(rs.getString("cpf"));
					c.setEndereco(rs.getString("endereco"));
					c.setTelefone(rs.getString("telefone"));
				} catch (Exception e) {
					System.out.println("cliente repositorio=" + e.getMessage());
				}
			}

		} catch (SQLException e) {
			System.out.println(e.getMessage());
		}

		return c;

	}

	public ArrayList<Cliente> consultaNome(String nome) {
		ArrayList<Cliente> vetorClientes = new ArrayList<Cliente>();
		daoCliente = DAOFactory.getClienteDAO();
		Cliente c = null;

		try {

			ResultSet rs = daoCliente.consultaNome("%" + nome + "%");

			while (rs.next()) {

				c = new Cliente();
				try {
					c.setNome(rs.getString("nome"));
					c.setCPF(rs.getString("cpf"));
					c.setEndereco(rs.getString("endereco"));
					c.setTelefone(rs.getString("telefone"));
					vetorClientes.add(c);
				} catch (Exception e) {
					System.out.println("cliente repositorio=" + e.getMessage());
				}
			}

		} catch (SQLException e) {
			System.out.println(e.getMessage());
		}

		return vetorClientes;

	}

	public String cadastra(Cliente c) {

		daoCliente = new DAOCliente();
		int rc = 0;
		rc = daoCliente.cadastra(c.getCPF(), c.getName(), c.getEndereco(),c.getTelefone());
		if (rc == 1) {
			return "true";
		} else {
			return daoCliente.getMessage();
		}
	}

	public String exclui(String cpf) {
		daoCliente = new DAOCliente();
		int rc = 0;
		rc = daoCliente.exclui(cpf);

		if (rc == 1) {
			return "true";
		} else {
			return daoCliente.getMessage();
		}
	}
	public String altera(Cliente c){
		daoCliente = new DAOCliente();
		int rc = 0;
		rc = daoCliente.altera(c.getCPF(), c.getName(), c.getEndereco(),c.getTelefone());

		if (rc == 1) {
			return "true";
		} else {
			return daoCliente.getMessage();
		}
	}
}
